package com.tvsinfo.jdk.demo.case1_grammar;

import java.util.function.Function;

/**
 * 类型推断
 */
public class ClassTypeInfer {

    public static void main(String[] args) {
        ClassTypeInfer classTypeInfer = new ClassTypeInfer();

        //书写参数类型
        classTypeInfer.test1((Integer integer) -> integer + 1);


        //不书写参数类型，根据上下文推断
        classTypeInfer.test1(o -> o + 1);




        //无法推断的情况，必须要声明函数式结构
//        Function<Integer, Integer> function=o -> o + 1;
//        CarFatory<Integer, Integer> carFatory=o -> o + 1;
//        classTypeInfer.test1(function);
//        classTypeInfer.test1(carFatory);


    }


    void test1(Function<Integer, Integer> function) {

    }


//    void test1(CarFatory<Integer,Integer> carFatory){
//
//    }
}
